Skip to content

Comments

Support Encryption Scheme#116

Open
suhasHere wants to merge 5 commits intomainfrom
secure_objects
Open

Support Encryption Scheme#116
suhasHere wants to merge 5 commits intomainfrom
secure_objects

Conversation

@suhasHere
Copy link
Contributor

Fixes #115 #115

- Add trackBaseKey catalog field for base key material signaling
- Add Key management subsection documenting out-of-scope nature
- Add keyId scoping options (single track, session, or multiple)
- Add informative reference to draft-jennings-moq-e2ee-mls
- Add SecureObjects section references for keyId and trackBaseKey
- Update encryption example with trackBaseKey
Copy link
Collaborator

@wilaw wilaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for submitting this PR. In general LGTM, although raised a few questions which I'd like resolved before approving.

ToDo - content protection for LOC-packaged content.
MSF supports end-to-end encryption of media content using MoQ Secure Objects
{{SecureObjects}}. When encryption is enabled, the payload of LOC-packaged
media objects is encrypted and authenticated, while relays can still route
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it authenticated, or just encrypted?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is both. Secure Object uses AEAD with AAD protection scheme. So the payload and private extensions are encrypted and authenticated along with GroupId, ObjectId and Immutable Extensions.

More details here: https://datatracker.ietf.org/doc/html/draft-jennings-moq-secure-objects-04#section-3

Depending on the key management mechanism in use, a keyId MAY be scoped to:

* A single track
* A single MSF session
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A 'MSF Session' is not defined in the draft.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's right, should I call is MoQ Session instead ?

For LOC-packaged tracks with encryption enabled (see {{SecureObjects, Section 4}}):

* The immutable header extensions (including Group ID and Object ID) remain
in plaintext and are authenticated
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How are the immutable header extensions authenticated?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The immutable header extensions are passed to as AAD ( Additional Authenticated Data) part of the protect() operation. Please see https://datatracker.ietf.org/doc/html/draft-jennings-moq-secure-objects-04#section-3.5

The default and RECOMMENDED value is "moq-secure-objects" as defined in
{{SecureObjects}}. If this field is absent, the track content is unencrypted.

Table 5: Registered encryption schemes
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be an IANA managed table?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes or we refer to appropriate section from Secure Objects once add the details in that draft ?

@avelad
Copy link

avelad commented Feb 13, 2026

Can you add examples for Widevine, PlayReady and FairPlay? Thanks!

@wilaw
Copy link
Collaborator

wilaw commented Feb 13, 2026

Can you add examples for Widevine, PlayReady and FairPlay? Thanks!

@avelad - no, because MSF explicitly does not support DRM. it's sister spec CMSF, which extends MSF to provide CMAF support, will support Widevine, Playready and Fairplay DRM via CENC.

Co-authored-by: Will Law <2762250+wilaw@users.noreply.github.com>
Copy link
Contributor Author

@suhasHere suhasHere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Responding to Will's review

For LOC-packaged tracks with encryption enabled (see {{SecureObjects, Section 4}}):

* The immutable header extensions (including Group ID and Object ID) remain
in plaintext and are authenticated
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The immutable header extensions are passed to as AAD ( Additional Authenticated Data) part of the protect() operation. Please see https://datatracker.ietf.org/doc/html/draft-jennings-moq-secure-objects-04#section-3.5

The default and RECOMMENDED value is "moq-secure-objects" as defined in
{{SecureObjects}}. If this field is absent, the track content is unencrypted.

Table 5: Registered encryption schemes
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes or we refer to appropriate section from Secure Objects once add the details in that draft ?

@suhasHere
Copy link
Contributor Author

@wilaw I merged some of your suggestions and responded to others. Please let me know. Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for Encryption Scheme

3 participants